package com.soft.javase.day02.practice.personmarry;

/**
 * @author yzg
 * @desc TODO
 * @date 2025/4/16
 */
public class Person {
    String name;
    int age;
    boolean gender; // true男 false女
    Person partner; // 伴侣

    public Person(String name, int age, boolean gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    public void marry(Person p) {
        // 1. 检查是否是同性
        if (this.gender == p.gender) {
            System.out.println(this.name + "和" + p.name + "不能结婚：同性不能结婚");
            return;
        }

        // 2. 检查是否达到结婚年龄
        if (this.gender && this.age < 24) { // 男性且年龄小于24
            System.out.println(this.name + "不能结婚：男性未达到24岁结婚年龄");
            return;
        }
        if (!this.gender && this.age < 22) { // 女性且年龄小于22
            System.out.println(this.name + "不能结婚：女性未达到22岁结婚年龄");
            return;
        }
        if (p.gender && p.age < 24) { // 男性且年龄小于24
            System.out.println(p.name + "不能结婚：男性未达到24岁结婚年龄");
            return;
        }
        if (!p.gender && p.age < 22) { // 女性且年龄小于22
            System.out.println(p.name + "不能结婚：女性未达到22岁结婚年龄");
            return;
        }

        // 3. 检查某一方是否已婚
        if (this.partner != null) {
            System.out.println(this.name + "不能结婚：" + this.name + "已经已婚");
            return;
        }
        if (p.partner != null) {
            System.out.println(p.name + "不能结婚：" + p.name + "已经已婚");
            return;
        }

        // 可以结婚
        this.partner = p;
        p.partner = this;
        System.out.println("恭喜" + this.name + "和" + p.name + "结婚！");
    }
}

